1. Technical Field of the Invention
This disclosure relates to automatic temperature control, and more particularly, to the dynamic adjustment of cooling devices in a personal computer (PC).
2. Description of the Related Art
In order to effectively control system temperatures, the ability to accurately measure both processor and system temperatures is required. In any PC central processing unit (CPU), the most relevant temperature is that of the “hot spot” on the die. All other temperatures in the system (including the heat-sink temperature) will follow the die temperature. A popular technique presently used to measure the die temperature is known as TDM (Thermal Diode Monitoring). In TDM, two different currents are successively passed through a diode-connected transistor, and the change in voltage can then be used to calculate the temperature. Most processors manufactured since the Intel Pentium II typically possess a strategically located transistor on its die used expressly for TDM.
With an accurate temperature monitoring method in place, the cooling devices employed in a PC (typically fans), can be controlled effectively. A variety of methods to control fan speeds exist. Two-step control is the simplest and consists of the fan either being off or on. Three-step control adds an additional half-speed step to what is otherwise two-speed operation. Linear fan speed control varies the speed of the fan by applying different voltages depending on the measured temperature. With PWM (pulse width modulation) control, the speed of the cooling fan is adjusted by applying a maximum voltage for different intervals—typically the duty cycle of a square wave at 30 Hz to 100 Hz. As the duty cycle, or ratio of high time to low time, changes so will the speed of the fan.
All of the methods for fan speed control mentioned above may use the CPU to read the temperature from the TDM device over a system bus. The thermal management software executed by the CPU must decide the appropriate fan speed and write a value to a register on the system's monitor integrated circuit (IC) to set the desired fan speed.
An automatic fan speed control loop can implement any of the fan speed control methods above. Automatic fan speed control loops are preferred because they can run independently of software. Once a system's monitoring device has been initialized by loading limit registers wit required parameters, the IC can react to temperature changes without host intervention. Fan speeds may also be optimized at any given temperature with an automatic fan speed control loop, equating to a reduction both in acoustic noise and power consumption, both of which are critical in notebook PC applications.
FIG. 1 is a plot of fan duty cycle as a function of temperature and illustrates a prior art methodology for an automatic fan speed control loop for a PC that utilizes PWM. During the power on self-test of the platform, software programs the temperature TMIN at which the fan turns on, the minimum fan duty cycle DMIN, the temperature range TRANGE, and any temperature hysteresis THYS, if desired. The solid line of FIG. 1 depicts how the fan duty cycle reacts to increasing or decreasing temperatures. From a cool state, as the temperature increases as shown by arrows 10 and approaches TMIN, the fan remains off. Once the temperature reaches TMIN, the fan will turn on to the minimum fan duty cycle DMIN. As the temperature increases, the fan speed will also increase as shown by arrows 12 until it has reached 100% at TMIN+TRANGE. As the temperature decreases, the fan speed will decrease as shown by arrows 14 until the temperature reaches TMIN. In order that the fan not continually cycle on and off, the fan will continue to run at the minimum speed as shown by arrows 16 until the temperature falls below the hysteresis point THYS, where it will turn off, and wait until the temperature rises again. If the system designer does not want the fan to turn off at the hysteresis point, it is alternately possible for the fan to run at the minimum operating point continually.
The process used to determine the operating points of TMIN, TRANGE, and DMIN in the methodology described above is to experimentally build a worst case model or system. From that worst case model the operating points are determined. Ideally, these control loop parameters are selected so that the system is calibrated to operate near its maximum operating temperature, but without exceeding the maximum operating temperature.
In any given system such as a PC, however, a specific unit has thermal characteristics that are completely unique. The variability in heat generated by subsystems (hard drives, optical drives, RAM, CPU, Memory, Graphics, Audio, Power Supply, connected peripherals, etc) will never be the same in similar builds of systems. This effect is compounded because heat-removing subsystems are also never exactly the same. For example, fans of the same model can vary in speed even though the same voltage is applied. In fact, RPM tolerances for fans are typically about +/−20%. The effectiveness of the fan cooling system is also dependent upon the altitude where the PC is operated; fans are more efficient at sea level then they are at altitude. The end user may also inadvertently alter the system cooling solution by placing the PC against a wall, blocking the air ducts. Further complications arise because of assembly variations—cables blocking airflow, heat sink grease thickness variations, heat sink pressure variations, etc. The CPU power consumption figure shown on the datasheets is also a maximum figure that does not necessarily reflect the true operating conditions. Thus, it is impossible to determine a thermal profile for a system or build a model that is typical of all systems.
Subsystem manufacturers are often responsible for determining these operating points. When they do not have control of the entire system, it makes their job nearly impossible. There is no effective way to determine the actual operating points in a system before that particular system is completely assembled. As a result, system designers are forced to design around worst case conditions, conditions where the actual system is almost never operated. This results in overcooling of the CPU and excessive acoustic noise.
What is needed is a method for an automatic cooling device control loop that can dynamically change operating parameters to adjust for the varying thermal conditions contributed by all system sub-components.